package com.web.base.wechat.facade;

import com.blue.integration.serve.OcrException;
import com.web.base.wechat.exception.WechatInvokerException;
import com.web.base.wechat.message.WechatMediaRequest;
import com.web.base.wechat.message.WechatMediaResponse;

/**
 * 微信处理临时素材接口
 * 
 * @author zhengj
 * @since 1.0 2016年12月14日
 */
public interface WechatMediaFacade
{
	/**
	 * 通过微信下载临时素材接口，识别身份证，并上传到阿里云 OSS
	 * 
	 * @param request 请求参数
	 * @return 身份证识别结果
	 * @throws WechatInvokerException 调用微信接口异常时抛出
	 * @throws OcrException OCR身份证识别异常时抛出
	 */
	WechatMediaResponse parseIdentityCard(WechatMediaRequest request) throws WechatInvokerException, OcrException;
	
	/**
	 * 通过微信下载临时素材接口，识别行驶证，并上传到阿里云 OSS
	 * 
	 * @param request 请求参数
	 * @return 行驶证识别结果
	 * @throws WechatInvokerException 调用微信接口异常时抛出
	 * @throws OcrException OCR行驶证识别异常时抛出
	 */
	WechatMediaResponse parseVehicleLicense(WechatMediaRequest request) throws WechatInvokerException, OcrException;
	
	/**
	 * 通过微信下载临时素材接口，车牌号驶证，并上传到阿里云 OSS
	 * 
	 * @param request 请求参数
	 * @return 车牌号识别结果
	 * @throws WechatInvokerException 调用微信接口异常时抛出
	 * @throws OcrException OCR车牌号识别异常时抛出
	 */
	WechatMediaResponse parseLicensePlate(WechatMediaRequest request) throws WechatInvokerException, OcrException;
	
	
	/**
	 * 通过微信下载临时素材接口，并上传到阿里云 OSS,无需识别
	 * 
	 * @param request 请求参数
	 * @return 无需识别
	 * @throws WechatInvokerException 调用微信接口异常时抛出
	 */
	WechatMediaResponse upload(WechatMediaRequest request) throws WechatInvokerException;
	
}
